#include "DynamicArray.h"
#include <iostream>
#include <ctime>

int main()
{
    // DynamicArray a;
    // for (int i = 1; i <= 10; i++)
    // {
    //     a.InsertTail(i);
    // }
    // for (int i = 1; i <= 10; i++)
    // {
    //     a.InsertHead(i);
    // }
    // a.InsertByIndex(100,1);
    // a.RemoveByIndex(1);
    // a.RemoveByElement(1);
    // a.show();

    // ElementType *p = a.FindByIndex(7);
    // if(p)
    //   std::cout<<*p<<std::endl;
    // else
    //   std::cout<<"没找到"<< std::endl;

    // DynamicArray result = a.FindByElement(10);
    // result.show();

    // a.UpdateByIndex(0,99);
    // a.show();
    // a.UpdateByElement(9,999);
    // a.show();

    // a[0] = 1009; // 修改
    // a.show();
    // std::cout << a[1] << std::endl; // 查找

    // srand(time(nullptr));
    // DynamicArray a;
    // for(int i = 0;i < 20;i++)
    //   a.InsertTail(rand() % 10 + 1);
    // a.show();
    // a.Sort();
    // a.Duplicate();
    // a.show();

    // DynamicArray a;
    // for (int i = 1; i < 10; i += 2)
    //     a.InsertTail(i);
    // a.show();

    // DynamicArray b;
    // for (int i = 2; i <= 10; i += 2)
    //     b.InsertTail(i);
    // b.show();

    // DynamicArray c = a.Merge(b);
    // c.show();

    DynamicArray a;
    for (int i = 0; i < 10; i ++)
        a.InsertTail(rand() % 10 + 1);
    a.Sort();
    a.show();

    DynamicArray b;
    for (int i = 0; i < 5; i ++)
        b.InsertTail(rand() % 100 + 1);
    b.Sort();
    b.show();

    // DynamicArray c = a.FdIntrSctn(b);
    DynamicArray c = a.FindUnionSet(b);
    // DynamicArray c = a.FindDifference(b);
    c.show();

    // std::cout<<(a==b)<<std::endl;

    // std::cout<<a.BinarySearch(9)<<std::endl;

    // DynamicArray a;
    // a.InsertTail(1);
    // a.InsertTail(2);
    // a.InsertTail(3);

    // DynamicArray b;
    // b.InsertTail(3);
    // b.InsertTail(1);

    // std::cout<<a.Contains(b)<<std::endl;
    // std::cout<<a.ContnsContains(b)<<std::endl;

    return 0;
}
